iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

人生第一次的SideProject系列 第 5

[Day 5 ] 技能配點功能實作(二)

  • 分享至 

  • xImage
  •  

今天開始實作配點功能,考慮過後決定將每個技能都新增職業/興趣兩種選項,勾選之後各別和這兩項的點數連動。

也就是說,如果點了「話術」的興趣欄位,話術就會被算進興趣類型,加點時興趣配點會相應跟著減少。

今天完成的部分是讓checkbox能夠被偵測是否已選取,並能夠統計技能值的加總。

實作如下:
https://ithelp.ithome.com.tw/upload/images/20190921/20118140tbN5hkr3p4.png

在HTML的綁定方法:

<div class="row">
    <div class="col skillTypePoint">
        <input type="checkbox" name="skill.skillName" value="carrer" 
        [checked]="skill.carrerChecked"
            (change)="skill.carrerChecked = !skill.carrerChecked" 
            (change)="changeCarrerPoint()">
        <span class="checkbox">職</span><br>
    </div>
</div>
<div class="row">
    <div class="col skillTypePoint">
        <input type="checkbox" name="skill.skillName" value="hobby" 
        [checked]="skill.hobbyChecked"
            (change)="skill.hobbyChecked = !skill.hobbyChecked" 
            (change)="changeHobbyPoint()">
        <span class="checkbox">興</span><br>
    </div>
</div>

TS寫法:

    changeCarrerPoint() {
        if (this.skill.carrerChecked) {
            this.skill.carrerValue = this.skill.value;
        }else{
            this.skill.carrerValue =0;
        }
    }
    
    changeHobbyPoint() {
        if (this.skill.hobbyChecked) {
            this.skill.hobbyValue = this.skill.value;
        } else {
            this.skill.hobbyValue = 0;
        }
    }
  getSkillTotal() {

    this.carrerTotal = 0;
    this.hobbyTotal = 0;

    setTimeout(() => {
      for (let i = 0; i < this.skills.length; i++) {
        this.carrerTotal += this.skills[i].carrerValue;
        this.hobbyTotal += this.skills[i].hobbyValue;
      }
    }, 10);

  }

之後就是要將職業/興趣總點數與各自能夠分配的點數綁定,這樣就完成配點功能了。

另外今天還修正了一個基礎數值沒有保底的BUG……之前寫的是random 18 以及random 6 to 18 ,但實際擲骰時最小點數是1,所以STR、DEX、POW、APP、CON的最小值應該是3,而EDU、SIZ、INT 的最小值則是8。

修改如下:

function random3to18() {
    return Math.floor(Math.random() * 16) + 3;
}
function random8to18() {
    return Math.floor(Math.random() * 11) + 8;
}

明天完成整個配點功能,接下來就來寫資料Save/Load啦!

= = = = = = = = = =

你今天的努力,
是否有跟未來的夢想
同一個等級?


上一篇
[Day 4 ] 技能配點功能實作(一)
下一篇
[Day 6 ] 技能配點功能實作-方法分析
系列文
人生第一次的SideProject33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言